This invention relates to computer graphics, and in particular, to an optimized system and method for binning of graphics data.
Appendix A, which is part of the present disclosure, is included in a microfiche appendix consisting of 1 sheet of microfiche having a total of 31 frames, such microfiche appendix incorporated herein by reference in its entirety. Appendix A is a listing of pseudo-code for implementing a hardware binning engine according to an embodiment of this invention as described more completely below.
A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
In the field of modern computer graphics, low-level objectsxe2x80x94such as points, line segments, polygons (e.g., triangles, parallelograms, trapezoids, etc.), text, curves, surfaces, and the likexe2x80x94are used to generate images for display on, for example, a computer monitor. The process of creating realistic graphics scenes from these low-level objects is commonly known as xe2x80x9crendering.xe2x80x9d In order to create the most realistic computer graphics, the process of rendering should be optimized.
According to an embodiment of the present invention, a method implemented in hardware for optimizing the rendering of an image includes the following steps: determining each tile in an image frame touched by a geometry; and selectively storing graphics data for the geometry into a separate, corresponding portion of memory for each tile touched by the geometry.
According to another embodiment of the present invention, a graphics system includes a binning engine implemented in hardware which can determine each tile in an image frame touched by a geometry. A separate portion of memory corresponding to each tile touched by the geometry is coupled to the binning engine. Each portion of memory selectively stores graphics data for the geometry.
According to yet another embodiment of the present invention, a binning engine implemented in hardware includes a buffer operable to buffer graphics data, the graphics data specifying one or more geometries. A geometry tiler, coupled to the buffer, identifies each geometry specified in the graphics data which touches a tile. A synchronizer is coupled to the geometry tiler. The synchronizer coordinates the storage of graphics data for each identified geometry into a separate portion of memory corresponding to the tile.
A technical advantage of the present invention includes a binning engine implemented in hardware which receives graphics data describing geometries and modes for an image to be displayed. The binning engine associates the geometries and modes with various regions of an image frame referred to as tiles. The resultant data is placed into a number of memory blocks or bins, with a separate bin provided for each tile. The data in each bin can be readily accessed in order to draw the relevant portion of the image within the respective tile or region of the image frame.
A technical advantage of the present invention includes a binning engine implemented in hardware. Compared to a binning engine implemented in software, a hardware binning engine reduces the workload of a host processor and optimizes the process of rendering, thereby enhancing the performance of any computer graphics system into which the binning engine is incorporated.
Other aspects and advantages of the present invention will become apparent from the following descriptions and accompanying drawings.